Manufacturers of electronic consumer devices, such as televisions, radio tuners, digital video disk players, video cassette recorders, set-top cable television boxes, set-top satellite boxes, etc., typically supply a remote control device along with each electronic consumer device. The remote control device can control the associated electronic consumer device by sending an operational signal to the electronic consumer device. The operational signal may, for example, be the envelope of an infrared signal. The operational signal carries a key code. Each such key code corresponds to a function of the selected electronic consumer device, such as power on, volume down, play, stop, select, channel advance, channel back, etc. Thus, an electronic device is controlled by a codeset of key codes.
Codesets can differ from each other not only by the different key codes, but also by the carrier, timing and framing protocols used to output the key codes as operational signals. In order to avoid the situation where an operational signal containing a key code operates an electronic device that is not selected, manufacturers of electronic consumer devices may use different codesets for different devices. Although each model of electronic consumer device might not have a unique codeset, there are nevertheless thousands of codesets used to operate the various types, brands and models of electronic consumer devices sold in the world market today.
Handheld remote control devices typically include an amount of storage, a processor, and a transmitting device. Where the remote control device is a handheld infrared remote control device, the storage is typically semiconductor memory that is on the same microcontroller integrated circuit as the processor. The transmitting device may, for example, be an infrared light emitting diode (LED). Information on one or more codesets is stored in the memory of the microcontroller. When a key is pressed on the remote control device, the microcontroller accesses the codeset information and generates an appropriate key code signal. The key code signal is modulated with the appropriate carrier and is supplied to the LED, thereby causing the operational signal to be transmitted as an envelope of the infrared signal.
Such microcontrollers are typically supplied to remote control manufacturers preloaded with codesets that operate the various types, brands and models of electronic devices that the remote control device is to operate. It is therefore of significant value to such a microcontroller manufacturer to be able to supply the appropriate codesets needed for each possible remote control application. A microcontroller manufacturer that has the codeset needed for a particular remote control application has a competitive advantage over another microcontroller manufacturer that does not have the needed codeset. Some microcontroller manufacturers therefore devote great effort and expense amassing large and comprehensive databases of codesets. These codeset databases are valuable to the microcontroller manufacturers.
Such microcontroller manufacturers have therefore conventionally attempted to keep their codeset databases proprietary. When working with a remote control device designer/manufacturer, the microcontroller manufacturer is careful not to disclose the format of the codeset information stored in the microcontroller. The codeset information may only be provided to the remote control manufacturer in the form of information stored in a mask-programmable read only memory (ROM) on the microcontroller integrated circuits. Reading this codeset information out of the microcontroller may be difficult, thereby helping to keep the information confidential. Even if a remote control device manufacturer were to be able to read the codeset information out of the microcontroller memory, the remote control device manufacturer would not know the format of the codeset information. Because a rendering engine in the microcontroller receives information in a particular format and converts that information into the operational signals, and because how the rendering engine does this conversion is not known to the remote control device manufacturer, the remote control manufacturer's knowledge of the codeset information stored in the microcontroller does not allow the remote control manufacturer to use the codeset information in a microcontroller from another microcontroller manufacturer. By concealing how the rendering engine works and the format of information that the rendering engine receives as inputs, the deciphering of the codeset information stored on the microcontroller is prevented. Conventionally, considerable care is exercised keeping the format of codeset information as supplied to the rendering engine as much of a secret as is reasonably possible. Conventionally, the microcontroller manufacturer does not share the format of the codeset information with any other entity, even its best remote control device manufacturing customers.